/*
 * @Author: 大国男儿 7824741+lc2677@user.noreply.gitee.com
 * @Date: 2022-10-09 16:21:58
 * @LastEditors: 大国男儿 7824741+lc2677@user.noreply.gitee.com
 * @LastEditTime: 2022-10-10 15:42:01
 * @FilePath: \vue-event\src\store\index.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import { getUserInfoAPI } from '@/api'// 引入axios

Vue.use(Vuex)

export default new Vuex.Store({
  // 登录成功后，将token保存到vuex
  state: {
    token: '',
    userInfo: {} // 保存用户信息(id,username,nickname,email,user_pic)
  },
  getters: {
    // 定义并导出用户名和昵称
    // username (state) { // 一般写法
    //   return state.userInfo.username
    // }
    nickname: state => state.userInfo.nickname, // 昵称
    username: state => state.userInfo.username, // 用户名
    user_pic: state => state.userInfo.user_pic // 用户头像
  },
  mutations: {
    // 2.更新 token 的mutation函数
    updateToken (state, newToken) {
      state.token = newToken
    },
    // 更新用户的信息
    updateUserInfo (state, info) {
      state.userInfo = info
    }
  },
  actions: {
    // 请求->用户信息
    async getUserInfoActions (store) {
      const res = await getUserInfoAPI()
      // commit：同步操作，数据提交至 mutations （可用于登录成功后读取用户信息写到缓存里）
      store.commit('updateUserInfo', res.data.data)
      console.log(res)
    }
  },
  modules: {
  },
  // 配置 vuex 的插件
  plugins: [createPersistedState()]
})
